Introdução à Ciência dos Dados - Aula 2

Mestrado Profissional em Administração

Prof. Washington Santos da Silva

IFMG - Campus Formiga

22 de março de 2023

Summário

  • Introdução à Linguagem R

    • Workflow
    • Sintáxe da Linguagem R
    • Programação em R: Boas Práticas
    • Tipos de Dados Atômicos
    • Estruturas de Dados
    • Manipulação de Dados: pacote dplyr
    • Referências

Introdução à Linguagem R

Workflow: Basics

  • Agora você tem alguma experiência executando código R.

  • Você não teve muitos detalhes, mas você certamente descobriu o básico.

  • A frustração é natural quando você começa a programar em R, a linguagem é muito exigente com a sintáxe, e até mesmo um caractere fora do lugar gera erros.

  • Embora você deva estar um pouco frustrado, não desanime, é típico e temporário: acontece com todos, e a única maneira de superar é continuar explorando, praticando e estudando.

  • Antes de ir mais longe, vamos ter certeza de que você tem uma base sólida em executar código R, e que você sabe alguns dos recursos úteis do RStudio para programar em R.

  • Referência: Wickham & Grolemund (2017)

Workflow: Basics

  • Atencao à estrutura de pastas para os projetos de análise de dados:

  • Estrutura de Pastas inicial recomendada para a disciplina:

    • C:/icd2023:

      • /dados_analise
      • /dados_brutos
      • /scripts
      • /notebooks

Workflow: Code Folding and Sections

  • Vamos voltar ao script aula01.R

  • Saiba mais em RStudio Support

  • Edit -> Folding:

    • Collapse — Alt+L

    • Expand — Shift+Alt+L

    • Collapse All — Alt+O

    • Expand All — Shift+Alt+O

  • Code:

    • Insert Section — Ctrl+Shift+R

    • Jump To — Shift+Alt+J

Sintáxe da linguagem: Atribuição

  • Podemos criar objetos com <-
  • Todas as instruções R com as quais criamos objetos (declarações de atribuição) tem o mesmo formato:
  • como ler esse código?

  • valor é atribuído a nome_objeto

  • Obs: nome_objeto = valor funciona mas não é uma boa prática!

Funções em R

  • R tem uma grande coleção de funções internas que são executadas como a seguinte sintaxe:
function_name(arg1 = val1, arg2 = val2, ...)
  • Exemplos com a função seq()
y <- seq(1, 10, length.out = 5)
y
[1]  1.00  3.25  5.50  7.75 10.00
  • Exemplos de autocompletion com TAB

Funções em R

para que o resultado seja exibido diretamente envolva toda a expressão entre parênteses:

(y <- seq(1, 10, length.out = 5))
[1]  1.00  3.25  5.50  7.75 10.00

Sintáxe da linguagem: Atribuição (cont.)

  • Faremos muitas atribuições com <-, e não é agradável digitar!

  • Solução?

  • shortcut: Alt + -

  • Observe que o RStudio magicamente envolve <- com espaços, que é uma boa prática de formatação de código.

  • É terrível ler código, então dêaosseusolhosumapausa e use espaços.

Programando em R: Boas Práticas

  • nomes de objetos devem começar com uma letra e podem conter letras, números, _ e .

  • Queremos nomes de objetos descritivos, então precisamos de uma convenção (code style).

  • Wickham & Grolemund (2017) recomendam o estilo snake_case.

Programando em R: Guias de Estilo

Sintáxe da linguagem (cont.)

  • Há um contrato implícito entre nós e a linguagem R.

  • R fará o cálculo tedioso para nós, mas em troca, devemos ser completamente preciso nas instruções.

  • Erros de digitação (typos) importam.

  • Case (Maiúscula/Minúscula) importa.

Desafio 1

Considere os seguintes vetores:

O vector linkedin representa as visualizações do seu perfil no Linkedin dos últimos 7 dias, e o vetor facebook representa as visualizações do seu perfil no Facebook dos últimos 7 dias.

Determine quando as visualizações do linkedin excederam 10 e as visualizações do facebook não conseguiram chegar a 10 para um determinado dia. Use os vetores do linkedin e do facebook.

Desafio 1

Considerando o mesmo vetor Linkedin do exercício anterior, determine se last é menor que 5 ou maior que 10.

Tipos de Dados (Atômicos)

Principais Tipos

Descrição
double a vector containing real values
integer a vector containing integer values
character a vector containing character values
logical a vector containing logical values
complex a vector containing complex values

Tipos Especiais

Descrição
NA Not Available: dados faltantes
NaN Not a Number: 0/0
Inf \(+ \infty\) ou \(- \infty\)

Documentação: Definições daLinguagem R

R Language Definition

Estruturas de Dados

Estruturas de Dados: Visão Geral

Factors: forcats package

Encorajo vocês a explorararem o pacotte forcats:

forcats website

Cheat Sheet

Data Frames: Manipulação com o pacote dplyr

  • O pacote dplyr pertence a um metapacote (família de pacotes) projetado especificamente para Ciência dos Dados chamado Tidyverse.

  • Alguns desses pacotes serão abordados ao longo deste curso, mas você pode encontrar informações mais completas em: https://www.tidyverse.org/.

  • o pacote dplyr é uma gramática de manipulação de dados.

  • O pacote fornece um conjunto consistente de verbos que ajudam a resolver os desafios mais comuns de manipulação de dados.

Pacote dplyr: Principais Verbos

Verbos Descrição
select() picks variables based on their names.
filter() picks cases based on their values.
mutate() adds new variables that are functions of existing variables
arrange() changes the ordering of the rows
summarise() reduces multiple values down to a single summary.
group_by() allows you to perform any operation “by group”

Tutorial sobre o Pacote dplyr

  • Para demonstrar o uso dos verbos, vamos utilizar os dados denominados gapminder que estão disponíveis no próprio pacote gapminder.

Pacote dplyr: Verbos

Figura 1: ?(caption)

Desafio 2

Escreva um único comando (que pode abranger várias linhas e inclui pipes) que produzirá uma data.frame que tenha os valores dos países africanos para lifeExp, country e year, mas não para outros países e continentes.

Pacote dplyr: group_by() e summarise()

Figura 2: ?(caption)

Desafio 3

  1. Calcule a esperança média de vida por país.

  2. Qual tem a esperança média de vida mais longa e qual tem a esperança média de vida mais curta?

Desafio 4

  1. Calcule a Expectativa de vida média para cada continente no ano 2002 e ordene a expectativa média em ordem decrescente.

  2. Calcule a Expectativa de vida média para cada país no ano 2002 e ordene a expecativa média em ordem crescente.

O que não foi tratado sobre a Linguagem R?

  • Controle de Fluxo
  • Funções
  • Gráficos
  • Outros Documentos Computacionais
  • Iremos tratar alguns destes itens ao longo do curso.

Referência Adicional